﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;

namespace Amoo.Visualizar
{
    public partial class Comunidade : Code.Business.PageBase
    {
        
        Code.Entity.Comunidade eComunidade = new Amoo.Code.Entity.Comunidade();
        
        protected void Page_Load(object sender, EventArgs e)
        {

            TratarRequest();

            Code.Data.Comunidade oComunidade = new Amoo.Code.Data.Comunidade();
            eComunidade = oComunidade.GetbyID(new Amoo.Code.Entity.Comunidade() { idComunidade = Convert.ToInt32(Request["idComunidade"]) });
            oComunidade.Dispose();

            tdPermissionBanner.Visible = false;
            tdPermissionConteudo.Visible = false;
            tdPermissionNoticia.Visible = false;

            if (Session["userSite"] != null)
            {
                Code.Entity.UsuarioComunidade eUsuarioComunidade = new Amoo.Code.Entity.UsuarioComunidade();
                eUsuarioComunidade = oComunidade.GetPermissionbyUser(eComunidade.idComunidade, ((Code.Entity.Usuario)Session["userSite"]).idUsuario);
                oComunidade.Dispose();

                if (eUsuarioComunidade != null)
                {
                    if (eUsuarioComunidade.bolPodeConteudo) { tdPermissionConteudo.Visible = true; }
                    if (eUsuarioComunidade.bolPodeNoticia) { tdPermissionNoticia.Visible = true; }
                    if (eUsuarioComunidade.bolPodeBanner) { tdPermissionBanner.Visible = true; }
                }
            }
            

            lblTituloComunidade.Text = "../" + eComunidade.dsNomeComunidade;            
            if (!Page.IsPostBack)
            {
              
                MontarMenuComundiade();
            }

            if (Request["idNoticia"] != null)
            {
                ExibirNoticia(Convert.ToInt16(Request["idNoticia"].ToString()));
            }

            if (_EventTarget != "")
            {
                switch (_EventArgument)
                {
                    case "Conteudo":
                        VizualizarConteudo(Convert.ToInt32(hdnIdValue.Value));
                        break;
                    case "ListarTodasNoticias":
                        ListarNoticias();
                        break;
                    case "ExibirNoticia":
                        ExibirNoticia();
                        break;
                }
            }
        }

        private void ExibirNoticia(int pIdNoticia)
        {
            lblTituloComunidade.Text = "../" + eComunidade.dsNomeComunidade + "/" + "Detalhe da noticia";

            Code.Data.Noticia oNoticia = new Amoo.Code.Data.Noticia();

            Code.Entity.Noticia eNoticia = oNoticia.GetById(new Amoo.Code.Entity.Noticia() { idNoticia = pIdNoticia });

            dvConteudo.InnerHtml = eNoticia.dsHtml;

            oNoticia.Dispose();
        }


        private void ExibirNoticia()
        {
            lblTituloComunidade.Text = "../" + eComunidade.dsNomeComunidade + "/" + "Detalhe da noticia";
            
            Code.Data.Noticia oNoticia = new Amoo.Code.Data.Noticia();

            Code.Entity.Noticia eNoticia = oNoticia.GetById(new Amoo.Code.Entity.Noticia() { idNoticia = Convert.ToInt32(hdnIdValue.Value) });

            dvConteudo.InnerHtml = eNoticia.dsHtml;

            oNoticia.Dispose();
        }

        private void TratarRequest()
        {
            if (Request["idComunidade"] == null)
            {
                Code.Data.Noticia oNoticia = new Amoo.Code.Data.Noticia();

                Code.Entity.Noticia eNoticia = oNoticia.GetById(new Amoo.Code.Entity.Noticia() { idNoticia = Convert.ToInt32(hdnIdValue.Value) });
                oNoticia.Dispose();

                Response.Redirect(Page.Request.Url + "?idComunidade=" + eNoticia.idComunidade.ToString() + "&idNoticia=" + eNoticia.idNoticia.ToString());
            }

        }

        private void ListarNoticias()
        {

            lblTituloComunidade.Text = "../" + eComunidade.dsNomeComunidade + "/" + "Lista de Noticias";

            Amoo.Code.Entity.Noticia enNoticia = new Amoo.Code.Entity.Noticia() { idComunidade = Convert.ToInt32(Request["idComunidade"]) };

            string strHTML = "";

            Code.Data.Noticia oNoticia = new Amoo.Code.Data.Noticia();

            foreach (Code.Entity.Noticia eNoticia in oNoticia.GetByIdComunidade(enNoticia))
            {

                strHTML += "            <table border=0 class='TableNoticia' cellpadding=3 cellspacing=3 width=100% style='border-style: solid; border-width: 1px; border-color: #609f60' onClick=SetIDValue(" + eNoticia.idNoticia.ToString() + ");__doPostBack('Comunidades','ExibirNoticia')>";
                strHTML += "                <tr>";
                strHTML += "                    <td>";
                strHTML += "                        <table border=0 cellpadding=0 cellspacing=0>";
                strHTML += "                            <col width=40px  valign=top/>";
                strHTML += "                            <col width=100% />";
                strHTML += "                            <col width=40px  valign=middle/>";
                strHTML += "                            <tr>";
                strHTML += "                                <td><img src='../Images/icon_news_32.png' Width=40px Height=40px /></td>";
                strHTML += "                                <td>";
                strHTML += "                                    <table border=0 cellpadding=0 cellspacing=0>";
                strHTML += "                                        <tr>";
                strHTML += "                                            <td><font color='#609f60' size='3'><strong>" + eNoticia.dsTitulo + "</strong></font></td>";
                strHTML += "                                        </tr>";
                //strHTML += "                                        <tr>";
                //strHTML += "                                            <td><font class='text1' size='3'>" + (eNoticia.dsHtml.Length > 300 ? eNoticia.dsHtml.Substring(0, 300) : eNoticia.dsHtml.Substring(0, eNoticia.dsHtml.Length)) + "...</font></td>";
                //strHTML += "                                        </tr>";
                strHTML += "                                    </table>";
                strHTML += "                                </td>";
                strHTML += "                                <td><!--<img src='../Images/seguir.png' Width=40px Height=40px />--></td>";
                strHTML += "                            </tr>";
                strHTML += "                        </table>";
                strHTML += "                    </td>";
                strHTML += "                </tr>";
                strHTML += "            </table>";
                strHTML += "<br>";
            }

            dvConteudo.InnerHtml = strHTML;

            oNoticia.Dispose();
        }

        private void VizualizarConteudo(int pidConteudo)
        {
            Code.Data.Conteudo oConteudo = new Amoo.Code.Data.Conteudo();
            Code.Entity.Conteudo eConteudo = oConteudo.GetById(new Amoo.Code.Entity.Conteudo() { idConteudo = pidConteudo });
            oConteudo.Dispose();


            dvConteudo.InnerHtml = eConteudo.dsHtml;
            if (eConteudo.TipoConteudo != "H")
            {
                lblTituloComunidade.Text = "../" + eComunidade.dsNomeComunidade + "/" + eConteudo.dsTituloConteudo;
            }
            else
            {
                lblTituloComunidade.Text = "../" + eComunidade.dsNomeComunidade;
            }

        }

        private void MontarMenuComundiade()
        {
            try
            {
                Code.Data.Conteudo oConteudo = new Amoo.Code.Data.Conteudo();
                string strHome = "";
                string strInterna = "";
                
                List<Code.Entity.Conteudo> retList = oConteudo.GetByComunidade(new Amoo.Code.Entity.Conteudo() { idComunidade = Convert.ToInt32(Request["idComunidade"]) });
                oConteudo.Dispose();

                foreach (Code.Entity.Conteudo eConteudo in retList)
                {
                    if (eConteudo.TipoConteudo == "H")
                    {
                        if (eConteudo.bolAtivo)
                        {
                            strHome = "<div class='MenuComunidade' style='heigth:20px; cursor:hand;' onclick=SetIDValue(" + eConteudo.idConteudo + ");__doPostBack('Vizualizar','Conteudo'); >INICIO</div>";
                            VizualizarConteudo(eConteudo.idConteudo);
                        }
                    }
                    else
                    {
                        if (eConteudo.bolAtivo)
                        {
                            strInterna += "<div style='font-size:11px; float:left; width:30px; text-align:center;'>I</div>";
                            strInterna += "<div class='MenuComunidade' style=' float:left; heigth:20px; cursor:hand;' onclick=SetIDValue(" + eConteudo.idConteudo + ");__doPostBack('Vizualizar','Conteudo');>" + eConteudo.dsTituloConteudo + "</div>";
                        }
                    }
                }


                if (strHome == "" && strInterna == "")
                {
                    Response.Redirect("ComunidadeIndisponivel.aspx?idComunidade=" + Request["idComunidade"]);
                }                
                
                strInterna += "<div style='font-size:11px; float:left; width:30px; text-align:center;'>I</div>";
                strInterna += "<div class='MenuComunidade' style='heigth:20px; cursor:hand;' onclick=__doPostBack('Comunidades','ListarTodasNoticias');>Todas as Noticias</div>";

                dvMenuComunidade.InnerHtml = "<div style='font-size:12px; float:left; width:90px;'>&nbsp;</div>" + strHome + strInterna;

                
            }
            catch (Exception ex)
            {
                ShowWindowAlert("Erro ao executar a pagina");
            }

        }
    }
}
